package main
//下一个排序，
//就是“下一个比这个数大的更接近的数”
//记住这个：123465
func nextPermutation(nums []int){
	if len(nums) <=1{
		return
	}
	i,j,k :=len(nums)-2,len(nums)-1,len(nums)-1
	//finc :A[i]<A[j]
	for i>=0 && nums[i] >=nums[j]{
		i--
		j--
	}
	if i>=0{ //不是最后一个排列
		//find:A[i]<A[k]
		for nums[i]>=nums[k]{
			k--
		}
		//swap A[i],A[k]
		nums[i],nums[k] = nums[k],nums[i]
	}
	//reverse A[j:end]
	for i,j :=j,len(nums)-1;i<j;i,j=i+1,j-1{
		nums[i],nums[j] =nums[j],nums[i]
	}

}


